import { Redirect, Route } from 'umi';
import React from 'react';
import Authorized from './Authorized';

const AuthorizedRoute = ( { component: Component, render, authority, redirectPath, ...rest } ) => (
  <Authorized
    authority={ authority }
    noMatch={
      <Route
        { ...rest }
        render={ () => (
          <Redirect
            to={ {
              pathname: redirectPath,
            } }
          />
        ) }
      />
    }
  >
    <Route { ...rest } render={ props => ( Component ? <Component { ...props } /> : render( props ) ) } />
  </Authorized>
);

export default AuthorizedRoute;
